package org.dromara.oce.controller.admin;

import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.web.core.BaseController;
import org.dromara.oce.constant.ReferralAppType;
import org.dromara.oce.constant.ReferralLinkType;
import org.dromara.common.core.domain.dto.TypeDto;
import org.dromara.oce.utils.PlatformParamTransUtil;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * 获取配置列表
 *
 * @author Lion Li
 * @date 2025-02-26
 * @module 管理平台接口
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oce/config")
public class ConfigController extends BaseController {

    /**
     * 查询推广链接类型列表
     */
    @GetMapping("/listLinkType")
    public R<List<TypeDto>> listLinkType() {
        return R.ok(ReferralLinkType.getAllType());
    }

    /**
     * 查询推广链接应用类型列表
     */
    @GetMapping("/listAppType")
    public R<List<TypeDto>> listAppType() {
        return R.ok(ReferralAppType.getAllType());
    }

    /**
     * 切换部门
     */
    @GetMapping("/switchDept")
    public R<Void> switchDept(@RequestParam("deptId")Long deptId) {
        PlatformParamTransUtil.setDynamicDept(deptId);
        return R.ok();
    }

    /**
     * 获取当前部门
     */
    @GetMapping("/getDept")
    public R<Map<String,Long>> getDept() {
        Map<String,Long> map = new HashMap<>();
        Long deptId = PlatformParamTransUtil.getDynamicDept();
        map.put("deptId",deptId);
        return R.ok(map);
    }

}
